]> dgit.raspbian.org Git - gnome-shell.git/commitdiff
runDialog: Use ClutterText::activate for enter handling
authorCarlos Garnacho <carlosg@gnome.org>
Wed, 15 Aug 2018 13:39:58 +0000 (15:39 +0200)
committerFlorian Müllner <florian.muellner@gmail.com>
Fri, 17 Aug 2018 18:37:32 +0000 (18:37 +0000)
Instead of consuming the event in front of the input method. Enter
is sometimes overriden by those, so it seems better to let the IM
handle the key event, and react later to it if it got propagated
anyway. That is what ::activate does, so use this signal.

This used to work before ClutterInputMethod/InputFocus because the
IM received the events directly from stage captured events. This
is not the case anymore.

Closes: #440
js/ui/runDialog.js

index b514f5b9f0d8156f7a154a1b7a71d1a3cb98fe0c..6e8c8a9054d09dd3ab05df5d540a09614ad52582 100644 (file)
@@ -118,18 +118,16 @@ var RunDialog = new Lang.Class({
 
         this._history = new History.HistoryManager({ gsettingsKey: HISTORY_KEY,
                                                      entry: this._entryText });
+        this._entryText.connect('activate', (o) => {
+            this.popModal();
+            this._run(o.get_text(),
+                      Clutter.get_current_event().get_state() & Clutter.ModifierType.CONTROL_MASK);
+            if (!this._commandError ||
+                !this.pushModal())
+                this.close();
+        });
         this._entryText.connect('key-press-event', (o, e) => {
             let symbol = e.get_key_symbol();
-            if (symbol == Clutter.Return || symbol == Clutter.KP_Enter) {
-                this.popModal();
-                this._run(o.get_text(),
-                          e.get_state() & Clutter.ModifierType.CONTROL_MASK);
-                if (!this._commandError ||
-                    !this.pushModal())
-                    this.close();
-
-                return Clutter.EVENT_STOP;
-            }
             if (symbol == Clutter.Tab) {
                 let text = o.get_text();
                 let prefix;